package com.gitee.qdbp.general.common.api.settings.model;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import com.gitee.qdbp.general.common.enums.ConfigDataType;
import com.gitee.qdbp.general.common.enums.UsingState;

/**
 * 系统配置主查询类
 *
 * @author zhh
 * @version 180809
 */
public class SystemConfigCoreWhere extends SystemConfigCoreBean {

    /** 版本序列号 **/
    private static final long serialVersionUID = 1L;

    /** 主键列表 **/
    private List<String> ids;

    /** 主键前模匹配条件 **/
    private String idStarts;

    /** 主键后模匹配条件 **/
    private String idEnds;

    /** 主键模糊查询条件 **/
    private String idLike;

    /** 使用场景空值/非空值查询 **/
    private Boolean sceneTypeIsNull;

    /** 使用场景前模匹配条件 **/
    private String sceneTypeStarts;

    /** 使用场景后模匹配条件 **/
    private String sceneTypeEnds;

    /** 使用场景模糊查询条件 **/
    private String sceneTypeLike;

    /** 分类编号空值/非空值查询 **/
    private Boolean categoryCodeIsNull;

    /** 分类编号前模匹配条件 **/
    private String categoryCodeStarts;

    /** 分类编号后模匹配条件 **/
    private String categoryCodeEnds;

    /** 分类编号模糊查询条件 **/
    private String categoryCodeLike;

    /** 数据类型(1.选项|2.列表)空值/非空值查询 **/
    private Boolean dataTypeIsNull;

    /** 数据类型(1.选项|2.列表)列表 **/
    private List<ConfigDataType> dataTypes;

    /** 配置项名称空值/非空值查询 **/
    private Boolean configNameIsNull;

    /** 配置项名称前模匹配条件 **/
    private String configNameStarts;

    /** 配置项名称后模匹配条件 **/
    private String configNameEnds;

    /** 配置项名称模糊查询条件 **/
    private String configNameLike;

    /** 配置项KEY列表 **/
    private List<String> configKeys;

    /** 配置项KEY前模匹配条件 **/
    private String configKeyStarts;

    /** 配置项KEY后模匹配条件 **/
    private String configKeyEnds;

    /** 配置项KEY模糊查询条件 **/
    private String configKeyLike;

    /** 配置项值(程序使用)空值/非空值查询 **/
    private Boolean configValueIsNull;

    /** 配置项值(程序使用)前模匹配条件 **/
    private String configValueStarts;

    /** 配置项值(程序使用)后模匹配条件 **/
    private String configValueEnds;

    /** 配置项值(程序使用)模糊查询条件 **/
    private String configValueLike;

    /** 配置项值的显示文本空值/非空值查询 **/
    private Boolean configTextIsNull;

    /** 配置项值的显示文本前模匹配条件 **/
    private String configTextStarts;

    /** 配置项值的显示文本后模匹配条件 **/
    private String configTextEnds;

    /** 配置项值的显示文本模糊查询条件 **/
    private String configTextLike;

    /** 配置项描述空值/非空值查询 **/
    private Boolean configDescIsNull;

    /** 配置项描述前模匹配条件 **/
    private String configDescStarts;

    /** 配置项描述后模匹配条件 **/
    private String configDescEnds;

    /** 配置项描述模糊查询条件 **/
    private String configDescLike;

    /** 排序值(越小越靠前)空值/非空值查询 **/
    private Boolean sortIndexIsNull;

    /** 最小排序值(越小越靠前) **/
    private Integer sortIndexMin;

    /** 最大排序值(越小越靠前) **/
    private Integer sortIndexMax;

    /** 是否可修改空值/非空值查询 **/
    private Boolean editableIsNull;

    /** 是否显示空值/非空值查询 **/
    private Boolean visibleIsNull;

    /** 选项空值/非空值查询 **/
    private Boolean optionsIsNull;

    /** 最小创建时间 **/
    private Date createTimeMin;

    /** 最大创建时间 **/
    private Date createTimeMax;

    /** 最小创建时间 **/
    private Date createTimeMinWithDay;

    /** 最大创建时间 **/
    private Date createTimeMaxWithDay;

    /** 启用状态(1.正常|2.未启用)空值/非空值查询 **/
    private Boolean usingStateIsNull;

    /** 启用状态(1.正常|2.未启用)列表 **/
    private List<UsingState> usingStates;

    /** 获取主键列表 **/
    public List<String> getIds() {
        return ids;
    }

    /** 设置主键列表 **/
    public void setIds(List<String> ids) {
        this.ids = ids;
    }

    /** 增加主键 **/
    public void addId(String... ids) {
        if (this.ids == null) {
            this.ids = new ArrayList<>();
        }
        this.ids.addAll(Arrays.asList(ids));
    }

    /** 获取主键前模匹配条件 **/
    public String getIdStarts() {
        return idStarts;
    }

    /** 设置主键前模匹配条件 **/
    public void setIdStarts(String idStarts) {
        this.idStarts = idStarts;
    }

    /** 获取主键后模匹配条件 **/
    public String getIdEnds() {
        return idEnds;
    }

    /** 设置主键后模匹配条件 **/
    public void setIdEnds(String idEnds) {
        this.idEnds = idEnds;
    }

    /** 获取主键模糊查询条件 **/
    public String getIdLike() {
        return idLike;
    }

    /** 设置主键模糊查询条件 **/
    public void setIdLike(String idLike) {
        this.idLike = idLike;
    }

    /** 判断使用场景是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getSceneTypeIsNull() {
        return sceneTypeIsNull;
    }

    /**
     * 设置使用场景空值查询(true:空值查询|false:非空值查询)
     *
     * @param sceneTypeIsNull 使用场景空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setSceneTypeIsNull(Boolean sceneTypeIsNull) {
        this.sceneTypeIsNull = sceneTypeIsNull;
    }

    /** 获取使用场景前模匹配条件 **/
    public String getSceneTypeStarts() {
        return sceneTypeStarts;
    }

    /** 设置使用场景前模匹配条件 **/
    public void setSceneTypeStarts(String sceneTypeStarts) {
        this.sceneTypeStarts = sceneTypeStarts;
    }

    /** 获取使用场景后模匹配条件 **/
    public String getSceneTypeEnds() {
        return sceneTypeEnds;
    }

    /** 设置使用场景后模匹配条件 **/
    public void setSceneTypeEnds(String sceneTypeEnds) {
        this.sceneTypeEnds = sceneTypeEnds;
    }

    /** 获取使用场景模糊查询条件 **/
    public String getSceneTypeLike() {
        return sceneTypeLike;
    }

    /** 设置使用场景模糊查询条件 **/
    public void setSceneTypeLike(String sceneTypeLike) {
        this.sceneTypeLike = sceneTypeLike;
    }

    /** 判断分类编号是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getCategoryCodeIsNull() {
        return categoryCodeIsNull;
    }

    /**
     * 设置分类编号空值查询(true:空值查询|false:非空值查询)
     *
     * @param categoryCodeIsNull 分类编号空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setCategoryCodeIsNull(Boolean categoryCodeIsNull) {
        this.categoryCodeIsNull = categoryCodeIsNull;
    }

    /** 获取分类编号前模匹配条件 **/
    public String getCategoryCodeStarts() {
        return categoryCodeStarts;
    }

    /** 设置分类编号前模匹配条件 **/
    public void setCategoryCodeStarts(String categoryCodeStarts) {
        this.categoryCodeStarts = categoryCodeStarts;
    }

    /** 获取分类编号后模匹配条件 **/
    public String getCategoryCodeEnds() {
        return categoryCodeEnds;
    }

    /** 设置分类编号后模匹配条件 **/
    public void setCategoryCodeEnds(String categoryCodeEnds) {
        this.categoryCodeEnds = categoryCodeEnds;
    }

    /** 获取分类编号模糊查询条件 **/
    public String getCategoryCodeLike() {
        return categoryCodeLike;
    }

    /** 设置分类编号模糊查询条件 **/
    public void setCategoryCodeLike(String categoryCodeLike) {
        this.categoryCodeLike = categoryCodeLike;
    }

    /** 判断数据类型(1.选项|2.列表)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getDataTypeIsNull() {
        return dataTypeIsNull;
    }

    /**
     * 设置数据类型(1.选项|2.列表)空值查询(true:空值查询|false:非空值查询)
     *
     * @param dataTypeIsNull 数据类型(1.选项|2.列表)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setDataTypeIsNull(Boolean dataTypeIsNull) {
        this.dataTypeIsNull = dataTypeIsNull;
    }

    /** 获取数据类型(1.选项|2.列表)列表 **/
    public List<ConfigDataType> getDataTypes() {
        return dataTypes;
    }

    /** 设置数据类型(1.选项|2.列表)列表 **/
    public void setDataTypes(List<ConfigDataType> dataTypes) {
        this.dataTypes = dataTypes;
    }

    /** 增加数据类型(1.选项|2.列表) **/
    public void addDataType(ConfigDataType... dataTypes) {
        if (this.dataTypes == null) {
            this.dataTypes = new ArrayList<>();
        }
        this.dataTypes.addAll(Arrays.asList(dataTypes));
    }

    /** 判断配置项名称是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getConfigNameIsNull() {
        return configNameIsNull;
    }

    /**
     * 设置配置项名称空值查询(true:空值查询|false:非空值查询)
     *
     * @param configNameIsNull 配置项名称空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setConfigNameIsNull(Boolean configNameIsNull) {
        this.configNameIsNull = configNameIsNull;
    }

    /** 获取配置项名称前模匹配条件 **/
    public String getConfigNameStarts() {
        return configNameStarts;
    }

    /** 设置配置项名称前模匹配条件 **/
    public void setConfigNameStarts(String configNameStarts) {
        this.configNameStarts = configNameStarts;
    }

    /** 获取配置项名称后模匹配条件 **/
    public String getConfigNameEnds() {
        return configNameEnds;
    }

    /** 设置配置项名称后模匹配条件 **/
    public void setConfigNameEnds(String configNameEnds) {
        this.configNameEnds = configNameEnds;
    }

    /** 获取配置项名称模糊查询条件 **/
    public String getConfigNameLike() {
        return configNameLike;
    }

    /** 设置配置项名称模糊查询条件 **/
    public void setConfigNameLike(String configNameLike) {
        this.configNameLike = configNameLike;
    }

    /** 获取配置项KEY列表 **/
    public List<String> getConfigKeys() {
        return configKeys;
    }

    /** 设置配置项KEY列表 **/
    public void setConfigKeys(List<String> configKeys) {
        this.configKeys = configKeys;
    }

    /** 增加配置项KEY **/
    public void addConfigKey(String... configKeys) {
        if (this.configKeys == null) {
            this.configKeys = new ArrayList<>();
        }
        this.configKeys.addAll(Arrays.asList(configKeys));
    }

    /** 获取配置项KEY前模匹配条件 **/
    public String getConfigKeyStarts() {
        return configKeyStarts;
    }

    /** 设置配置项KEY前模匹配条件 **/
    public void setConfigKeyStarts(String configKeyStarts) {
        this.configKeyStarts = configKeyStarts;
    }

    /** 获取配置项KEY后模匹配条件 **/
    public String getConfigKeyEnds() {
        return configKeyEnds;
    }

    /** 设置配置项KEY后模匹配条件 **/
    public void setConfigKeyEnds(String configKeyEnds) {
        this.configKeyEnds = configKeyEnds;
    }

    /** 获取配置项KEY模糊查询条件 **/
    public String getConfigKeyLike() {
        return configKeyLike;
    }

    /** 设置配置项KEY模糊查询条件 **/
    public void setConfigKeyLike(String configKeyLike) {
        this.configKeyLike = configKeyLike;
    }

    /** 判断配置项值(程序使用)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getConfigValueIsNull() {
        return configValueIsNull;
    }

    /** 设置配置项值(程序使用)空值查询(true:空值查询|false:非空值查询) **/
    public void setConfigValueIsNull(Boolean configValueIsNull) {
        this.configValueIsNull = configValueIsNull;
    }

    /** 获取配置项值(程序使用)前模匹配条件 **/
    public String getConfigValueStarts() {
        return configValueStarts;
    }

    /** 设置配置项值(程序使用)前模匹配条件 **/
    public void setConfigValueStarts(String configValueStarts) {
        this.configValueStarts = configValueStarts;
    }

    /** 获取配置项值(程序使用)后模匹配条件 **/
    public String getConfigValueEnds() {
        return configValueEnds;
    }

    /** 设置配置项值(程序使用)后模匹配条件 **/
    public void setConfigValueEnds(String configValueEnds) {
        this.configValueEnds = configValueEnds;
    }

    /** 获取配置项值(程序使用)模糊查询条件 **/
    public String getConfigValueLike() {
        return configValueLike;
    }

    /** 设置配置项值(程序使用)模糊查询条件 **/
    public void setConfigValueLike(String configValueLike) {
        this.configValueLike = configValueLike;
    }

    /** 判断配置项值的显示文本是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getConfigTextIsNull() {
        return configTextIsNull;
    }

    /** 设置配置项值的显示文本空值查询(true:空值查询|false:非空值查询) **/
    public void setConfigTextIsNull(Boolean configTextIsNull) {
        this.configTextIsNull = configTextIsNull;
    }

    /** 获取配置项值的显示文本前模匹配条件 **/
    public String getConfigTextStarts() {
        return configTextStarts;
    }

    /** 设置配置项值的显示文本前模匹配条件 **/
    public void setConfigTextStarts(String configTextStarts) {
        this.configTextStarts = configTextStarts;
    }

    /** 获取配置项值的显示文本后模匹配条件 **/
    public String getConfigTextEnds() {
        return configTextEnds;
    }

    /** 设置配置项值的显示文本后模匹配条件 **/
    public void setConfigTextEnds(String configTextEnds) {
        this.configTextEnds = configTextEnds;
    }

    /** 获取配置项值的显示文本模糊查询条件 **/
    public String getConfigTextLike() {
        return configTextLike;
    }

    /** 设置配置项值的显示文本模糊查询条件 **/
    public void setConfigTextLike(String configTextLike) {
        this.configTextLike = configTextLike;
    }

    /** 判断配置项描述是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getConfigDescIsNull() {
        return configDescIsNull;
    }

    /** 设置配置项描述空值查询(true:空值查询|false:非空值查询) **/
    public void setConfigDescIsNull(Boolean configDescIsNull) {
        this.configDescIsNull = configDescIsNull;
    }

    /** 获取配置项描述前模匹配条件 **/
    public String getConfigDescStarts() {
        return configDescStarts;
    }

    /** 设置配置项描述前模匹配条件 **/
    public void setConfigDescStarts(String configDescStarts) {
        this.configDescStarts = configDescStarts;
    }

    /** 获取配置项描述后模匹配条件 **/
    public String getConfigDescEnds() {
        return configDescEnds;
    }

    /** 设置配置项描述后模匹配条件 **/
    public void setConfigDescEnds(String configDescEnds) {
        this.configDescEnds = configDescEnds;
    }

    /** 获取配置项描述模糊查询条件 **/
    public String getConfigDescLike() {
        return configDescLike;
    }

    /** 设置配置项描述模糊查询条件 **/
    public void setConfigDescLike(String configDescLike) {
        this.configDescLike = configDescLike;
    }

    /** 判断排序值(越小越靠前)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getSortIndexIsNull() {
        return sortIndexIsNull;
    }

    /**
     * 设置排序值(越小越靠前)空值查询(true:空值查询|false:非空值查询)
     *
     * @param sortIndexIsNull 排序值(越小越靠前)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setSortIndexIsNull(Boolean sortIndexIsNull) {
        this.sortIndexIsNull = sortIndexIsNull;
    }

    /** 获取最小排序值(越小越靠前) **/
    public Integer getSortIndexMin() {
        return sortIndexMin;
    }

    /** 设置最小排序值(越小越靠前) **/
    public void setSortIndexMin(Integer sortIndexMin) {
        this.sortIndexMin = sortIndexMin;
    }

    /** 获取最大排序值(越小越靠前) **/
    public Integer getSortIndexMax() {
        return sortIndexMax;
    }

    /** 设置最大排序值(越小越靠前) **/
    public void setSortIndexMax(Integer sortIndexMax) {
        this.sortIndexMax = sortIndexMax;
    }

    /** 判断是否可修改是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getEditableIsNull() {
        return editableIsNull;
    }

    /**
     * 设置是否可修改空值查询(true:空值查询|false:非空值查询)
     *
     * @param editableIsNull 是否可修改空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setEditableIsNull(Boolean editableIsNull) {
        this.editableIsNull = editableIsNull;
    }

    /** 判断是否显示是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getVisibleIsNull() {
        return visibleIsNull;
    }

    /**
     * 设置是否显示空值查询(true:空值查询|false:非空值查询)
     *
     * @param visibleIsNull 是否显示空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setVisibleIsNull(Boolean visibleIsNull) {
        this.visibleIsNull = visibleIsNull;
    }

    /** 判断选项是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getOptionsIsNull() {
        return optionsIsNull;
    }

    /** 设置选项空值查询(true:空值查询|false:非空值查询) **/
    public void setOptionsIsNull(Boolean optionsIsNull) {
        this.optionsIsNull = optionsIsNull;
    }

    /** 获取最小创建时间 **/
    public Date getCreateTimeMin() {
        return createTimeMin;
    }

    /** 设置最小创建时间 **/
    public void setCreateTimeMin(Date createTimeMin) {
        this.createTimeMin = createTimeMin;
    }

    /** 获取最大创建时间 **/
    public Date getCreateTimeMax() {
        return createTimeMax;
    }

    /** 设置最大创建时间 **/
    public void setCreateTimeMax(Date createTimeMax) {
        this.createTimeMax = createTimeMax;
    }

    /** 获取最小创建时间 **/
    public Date getCreateTimeMinWithDay() {
        return createTimeMinWithDay;
    }

    /** 设置最小创建时间 **/
    public void setCreateTimeMinWithDay(Date createTimeMinWithDay) {
        this.createTimeMinWithDay = createTimeMinWithDay;
    }

    /** 获取最大创建时间 **/
    public Date getCreateTimeMaxWithDay() {
        return createTimeMaxWithDay;
    }

    /** 设置最大创建时间 **/
    public void setCreateTimeMaxWithDay(Date createTimeMaxWithDay) {
        this.createTimeMaxWithDay = createTimeMaxWithDay;
    }

    /** 判断启用状态(1.正常|2.未启用)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getUsingStateIsNull() {
        return usingStateIsNull;
    }

    /**
     * 设置启用状态(1.正常|2.未启用)空值查询(true:空值查询|false:非空值查询)
     *
     * @param usingStateIsNull 启用状态(1.正常|2.未启用)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setUsingStateIsNull(Boolean usingStateIsNull) {
        this.usingStateIsNull = usingStateIsNull;
    }

    /** 获取启用状态(1.正常|2.未启用)列表 **/
    public List<UsingState> getUsingStates() {
        return usingStates;
    }

    /** 设置启用状态(1.正常|2.未启用)列表 **/
    public void setUsingStates(List<UsingState> usingStates) {
        this.usingStates = usingStates;
    }

    /** 增加启用状态(1.正常|2.未启用) **/
    public void addUsingState(UsingState... usingStates) {
        if (this.usingStates == null) {
            this.usingStates = new ArrayList<>();
        }
        this.usingStates.addAll(Arrays.asList(usingStates));
    }

}